home *** CD-ROM | disk | FTP | other *** search
/ kermit.columbia.edu / kermit.columbia.edu.tar / kermit.columbia.edu / newsgroups / misc.19981211-19990422 / 000327_news@watsun.cc.columbia.edu _Sun Mar 7 11:35:13 1999.msg < prev    next >
Internet Message Format  |  1999-04-21  |  4KB

  1. Return-Path: <news@watsun.cc.columbia.edu>
  2. Received: from newsmaster.cc.columbia.edu (newsmaster.cc.columbia.edu [128.59.59.30])
  3.     by watsun.cc.columbia.edu (8.8.5/8.8.5) with ESMTP id LAA07326
  4.     for <kermit.misc@watsun.cc.columbia.edu>; Sun, 7 Mar 1999 11:35:12 -0500 (EST)
  5. Received: (from news@localhost)
  6.     by newsmaster.cc.columbia.edu (8.8.5/8.8.5) id LAA28997
  7.     for kermit.misc@watsun.cc.columbia.edu; Sun, 7 Mar 1999 11:17:46 -0500 (EST)
  8. X-Authentication-Warning: newsmaster.cc.columbia.edu: news set sender to <news> using -f
  9. From: fdc@watsun.cc.columbia.edu (Frank da Cruz)
  10. Subject: Re: compilation muse
  11. Date: 7 Mar 1999 16:17:45 GMT
  12. Organization: Columbia University
  13. Message-ID: <7bu8r9$sa2$1@newsmaster.cc.columbia.edu>
  14. To: kermit.misc@mailrelay2.cc.columbia.edu
  15.  
  16. In article <slrn7e3c6d.8k.mjs@darkstar.frop.org>,
  17. digs <mjs@darkstar.frop.org> wrote:
  18. : just a wild shot in the dark,
  19. : gnu readline + kermit
  20. : any thoughts?
  21. GNU readline is its whole own world, and so is Kermit's command parser.
  22. Each one has features lacking in the other.  Obviously lacking in Kermit's
  23. is any kind of editing except from the right: no EMACS, VI, VMS, DOS, or
  24. other editing styles for editing within the line, and no remapping of
  25. editing keys.  But readline would not know how to expand Kermit variables or
  26. execute its macros, and probably would not be able to provide keyword or
  27. file lists on "?", at least not without significant effort.  Also, C-Kermit
  28. has parsing primitives not only for keywords and filenames, but also
  29. numbers, dates and times, switches, directories, invisible synonyms,
  30. invisible non-unique special abbreviations, etc.  It allows for comments,
  31. continuation, and block structure.  I'm not sure how much of this readline
  32. could handle.  Its filename parser can handle not only file or directory
  33. lists from a given directory, but also recursive lists.  (Much of this
  34. applies to C-Kermit 7.0.)
  35.  
  36. So yes, there would be some advantages to substituting readline() for
  37. Kermit's command parsing, but we would also lose features essential to both
  38. interactive use and to scripting.  Of course this leads us to the next
  39. (frequently asked) question: why doesn't Kermit use Tcl or Expect or Python
  40. or Rexx, etc etc, for its scripting language?
  41.  
  42. Because (a) Kermit predates all of those; (b) C-Kermit's source code is
  43. designed to be portable to any platform, and in fact runs not only on UNIX
  44. (all varieties) but also VMS, AOS/VS, Stratus VOS, OS-9, the Amiga, plus
  45. several others that might not be currently supported but have been at one
  46. time: the Macintosh, the Atari ST, etc.  It does not require ANSI C (I'm not
  47. sure if readline does) nor, in fact, any particular library or system API
  48. underneath except its own.  And (c) readline uses curses (or something like
  49. it) since it sends and reads terminal-specific escape sequences, and curses
  50. is not available universally.  But mainly (d) the amount of effort required
  51. to integrate readline in a way that provides 100% backwards compatibility to
  52. millions of existing scripts on all the platforms where C-Kermit runs or
  53. could run is most likely not worth the benefits.
  54.  
  55. We are frequently asked to provide hooks to external scripting languages,
  56. and in fact have done so in one case: for Rexx in Kermit 95 on OS/2.  But
  57. each combination of external language and platform presents a unique set
  58. of problems.  Other combinations are on our long, long, long list of
  59. possible future projects.
  60.  
  61. - Frank